Applicative Programming with Effects